namespace CShipBasic.events;

/// <summary>
/// 定义一个事件发布器
/// </summary>
public class DelegateEventPublisher
{
    // 声明一个委托
    public delegate void MessageHandler(string message);
    // 基于上面的委托定义事件
    public event MessageHandler SendMessages = delegate { };
    
    public void MessageProcess(){
       
        OnSendMessage("开始发送消息");
        string content = "从其他地方获取到的消息数据";
        OnSendMessage("Message: " + content);
    }
    
    // 使用定义的事件来发送消息
    protected void OnSendMessage(string message){
        if (SendMessages != null){
            // 以下两种方式都可以
            //SendMessages?.Invoke(message);
            SendMessages(message);
        }
    }
}